/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import { HvigorNode } from '@ohos/hvigor'
import { IModuleContext } from '../IModuleContext'
import SerializationPathUtil from '../../../core/utils/SerializationPathUtil';
import { OhosHapContext } from '@ohos/hvigor-ohos-plugin';
import { ModuleBuildProfile } from '@ohos/hvigor-ohos-plugin/src/options/build/module-build-profile';

export class ModuleContextImpl implements IModuleContext {
  readonly node: HvigorNode
  readonly moduleContext: OhosHapContext
  readonly scanFiles: string[] = []

  constructor(node: HvigorNode, moduleContext: OhosHapContext) {
    this.node = node
    this.moduleContext = moduleContext
  }

  /**
   * 获取模块的buildProfile配置
   */
  get buildProfileOpt(): ModuleBuildProfile.ModuleBuildOpt {
    return this.moduleContext.getBuildProfileOpt();
  }

  initScanFiles(scanDir: string[]): void {
    scanDir.forEach(dir => {
      const scanPath = SerializationPathUtil.pathResolve(this.moduleContext.getModulePath(), dir)
      this.scanFiles.push(...SerializationPathUtil.scanEtsFiles(scanPath))
    })
  }
}
